﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Aurora.WebApp.Models;
using Aurora.WebApp.Controllers;
using PagedList;
using Aurora.WebApp.Helpers;

namespace Aurora.WebApp.ViewModel.Employee
{
    public class ListTrabajadoresViewModel
    {
        public string TRA_NOMBRE { get; set; }
        public string TRA_CODIGO { get; set; }

        public int? NumeroPagina { get; set; }
        public IPagedList<Trabajador> LstTrabajadores { get; set; }

        public ListTrabajadoresViewModel() { }

        public void CargarDatos(CargarDatosContext datacontext, int? np, string _TRA_CODIGO, string _TRA_NOMBRE)
        {
            NumeroPagina = np ?? 1;
            List<Trabajador> Lista = new List<Trabajador>();
            if (!string.IsNullOrEmpty(_TRA_NOMBRE) && !string.IsNullOrEmpty(_TRA_CODIGO))
            {
                Lista = datacontext.context.Trabajador.Where(x => x.TRA_NOMBRE.ToLower().Contains(_TRA_NOMBRE.ToLower()) && x.TRA_CODIGO.ToLower().Contains(_TRA_CODIGO.ToLower()) && x.TRA_ESTADO == ConstantHelpers.EST_ACTIVO).ToList();
            }
            else if (string.IsNullOrEmpty(_TRA_CODIGO) && !string.IsNullOrEmpty(_TRA_NOMBRE))
            {
                Lista = datacontext.context.Trabajador.Where(x => x.TRA_NOMBRE.ToLower().Contains(_TRA_NOMBRE.ToLower()) && x.TRA_ESTADO == ConstantHelpers.EST_ACTIVO).ToList();
            }
            else if (!string.IsNullOrEmpty(_TRA_CODIGO) && string.IsNullOrEmpty(_TRA_NOMBRE))
            {
                Lista = datacontext.context.Trabajador.Where(x => x.TRA_CODIGO.ToLower().Contains(_TRA_CODIGO.ToLower()) && x.TRA_ESTADO == ConstantHelpers.EST_ACTIVO).ToList();
            }
            else
            {
                Lista = datacontext.context.Trabajador.Where(x => x.TRA_ESTADO == ConstantHelpers.EST_ACTIVO).ToList();
            }
            IQueryable<Trabajador> query = Lista.AsQueryable();
            query = query.OrderBy(x => x.TRA_NOMBRE);
            LstTrabajadores = query.ToPagedList(NumeroPagina.Value, ConstantHelpers.DEFAULT_PAGE_SIZE);
        }
    }
}